package algo3.grupo3.modelo;


public  class BloqueConArticulo extends ObjetoAnimado {

	protected Articulo articulo;
	public static final int DURABILIDAD_BLOQUE_LADRILLOS= 5;
	public static final int DURABILIDAD_BLOQUE_CEMENTO= 10;
	public final int DURABILIDAD_MAXIMA_BLOQUE= 20;
	
	
	public void arrojarArticulo(){
		
		super.posicion.dejarArticulo(this.articulo);
		if(this.articulo!=null)
			this.articulo.establecerPosicion(super.posicion);
		
	}//fin arrojarArticulo
	
	public void convertirABloqueCemento(){		
		this.durabilidad = DURABILIDAD_BLOQUE_CEMENTO;		
	}
	
	public void convertirABloqueLadrillos(){
		this.durabilidad = DURABILIDAD_BLOQUE_LADRILLOS;
	}
	
	public BloqueConArticulo(){
		
		this.convertirABloqueLadrillos();
		
	}
	
	public void agregarArticulo(Articulo unArticulo){
		this.articulo = unArticulo;
	}
	
	public void setearDurabilidad(int d){
		
		if(d<= 0){
			this.durabilidad=1;
			return;
		}
		
		if(d>20){
			this.durabilidad = this.DURABILIDAD_MAXIMA_BLOQUE;
			return;
		}
		
		this.durabilidad=d;
		
	}
	
	/*public BloqueConArticulo(Casilla posicion){
		this.convertirABloqueLadrillos();
		this.posicion = posicion;
		this.posicion.ocupar(this);
		
	}*/
	
	public BloqueConArticulo(Casilla posicion){
		this.convertirABloqueLadrillos();
		if(posicion==null)
			return;
		posicion.compartir(this);
	}

	@Override
	public boolean esAtravesable() {
		return false;
	}
	
	public void actualizarEstado(double tiempoCiclo){
		
	}
	
	public Articulo obtenerArticulo(){
		return this.articulo;
	}
	
	public boolean tieneArticulo(){
		return (this.articulo != null);
	}
	
	@Override
	public void lastimar(int poder){
		
		if(poder <= Enemigo.PODER_ENEMIGO)
			return;
		this.durabilidad-= poder;
		if(!this.sigueActivo()){
			this.arrojarArticulo();
			this.destruir();
		}
			
		
	}/*este metodo determina que un bloque no puede ser daniado por ataques enemigos. */
	
	
}// fin de BloqueConArticulo